<!-- <!DOCTYPE html> -->
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/common.js"></script>
</head>

<body>

</body>
<script>
    // 递归  
    // 函数在执行过程中 调用了自己;

    // 特征:先传递 在回归

    // 注意: 递归一定要有跳出条件

    // 死递归   => 类似死循环   报错: Maximum call stack size exceeded
    // function fn(){
    //     console.log("这是fn函数");
    //     fn();
    // }
    
    // fn();
    
  

    debugger;

    // 尾递归  =>   在结尾得到最终结果 在依次向回传递
    function fn(i,sum){ // fn(2,12)
        debugger;
        console.log(i,sum);
        sum += i;
        if(i == 1){
            return sum;
        }
        return fn(i-1,sum);  // fn(1,14)
    }

    // i递增  sum 将上次运行结果 传入到下个函数(保持累加)
    // fn(5,0) =>  fn(4,5) => fn(3,9)  => fn(2,12) => fn(1,14)
    //                                                    ||
    //  15   <=      15   <=   15    <=     15    <=     15


    // 王者荣耀 6块钱的皮肤
    // 你 => 同桌A  => 同桌B  => 同桌C  => 同桌D  
    //                                     ||
    //  6       6        6         6        6

    var result = fn(5,0);
    console.log(result);




    











</script>

</html>